Reverse Penny Drop Verification - Initiate Payment Links
The Initiate Payment Links module generates multiple Unified Payments Interface(UPI) links for the penny drop transaction.
Description
Objective
| Input [Optional] | Output |
|---|---|
| The name of the user | Multiple UPI payment links (or a QR code) to initiate a penny drop transaction by the user |
Next Step
Retrieve the bank account information of the user and the transaction status through the Retrieve Bank Details module.
Input
The following table provides the complete information on the input parameters used by the module.
| Input Parameter | Mandatory or Optional | Valid Values | Description |
|---|---|---|---|
name | Optional | Not applicable | The name of the user. The value in this field can help with an additional name match verification against the account owner's name retrieved from the Retrieve Bank Details module. |
Success Response Sample
The following code is a sample of success response.
{
"status": "success",
"statusCode": 200,
"result": {
"verification_id": "35e83eea-3024-4268-9fff-00965effdc27",
"ref_id": 873,
"valid_upto": "2023-10-06 13:50:48",
"upi_link": "<UPI_URL>",
"gpay": "<GPAY_URL>",
"bhim": "<BHIM_URL>",
"paytm": "<PAYTM_URL>",
"phonepe": "<PHONEPE_URL>",
"qr_code": "<BASE64_ENCODED_QR_CODE>"
},
"metaData": {
"requestId": "316adc34-9231-4ac2-9882-ad808227f466"
}
}
Success Response Details
The following table provides the details of the parameters in a successful response.
info
*Intent link: A link that directs you to start an activity in another application. It enables seamless navigation and interaction across the applications.
| Field | Value | Description |
|---|---|---|
| verification_id | String | Unique identifier for the user |
| ref_id | Integer | Reference ID associated with the payment |
| valid_upto | String (datetime) | The date and time until which the payment links are valid. The links are valid up to ten minutes from making the request. |
| upi_link | String | The intent link* enables users to select their preferred UPI application on their mobile device to complete the transaction |
| gpay | String | The intent link* redirects users to the Google Pay application to complete the transaction |
| bhim | String | The intent link* redirects users to the BHIM application to complete the transaction |
| paytm | String | The intent link* redirects users to the Paytm application to complete the transaction |
| phonepe | String | The intent link* redirects users to the PhonePe application to complete the transaction |
| qr_code | String | A base64-encoded representation of the QR code for the upi_link |
Failure Response Sample
The following is a sample failure response when the verification ID already exists.
{
"statusCode": 400,
"status": "failure",
"error": "verificationId already exists",
"metaData": {
"requestId": "1691658819691-d40cd929-e17c-4641-aedb-dac2b775ab71"
}
}
Error Response Samples
The following are the sample error responses from the module.
- Input Length Error
- Server Error
- Rate Limit Exceeded
{
"message": "Input Validation Error: does not meet minimum length of 1",
"statusCode": 400,
"status": "failure"
}
{
"statusCode": 500,
"status": "failure",
"error": "Internal Server Error"
}
{
"statusCode": 429,
"status": "failure",
"error": "Rate limit exceeded"
}
Failure and Error Response Details
A failure or error response from the module contains a
failure status with a relevant status code and error message. The following table lists all error responses.| Status Code | Error Message | Error Description |
|---|---|---|
| 400 | verificationId already exists | The provided verification ID already exists in the system. |
| 400 | Input Validation Error: does not meet minimum length of 1 | The request did not meet the minimum length requirement of 1. |
| 401 | Missing/Invalid credentials | The request is either missing the mandatory credentials or has invalid credentials. |
| 429 | Rate limit exceeded | You have exceeded the configured rate limit for transactions per minute. |
| 500 | Internal Server Error | Please check the request headers or contact the HyperVerge team for resolution. |